package dao;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;

import com.googlecode.s2hibernate.struts2.plugin.annotations.SessionTarget;
import com.googlecode.s2hibernate.struts2.plugin.annotations.TransactionTarget;

import org.hibernate.Query;

import model.Grupo;

public class GrupoDAO{

	@SessionTarget
	Session session;
	
	@TransactionTarget
	Transaction transaction;

	
	@SuppressWarnings("unchecked")
	public List<Grupo> list() {	
		List<Grupo> grupos = null;
		try {
			grupos = session.createQuery("from Grupo").list();
		} catch (Exception e) {
			e.printStackTrace();
		} 
		return grupos;
	}

	public void save(Grupo grupo) {
		try {
			session.saveOrUpdate(grupo);
		} catch (Exception e) {
			transaction.rollback();
			e.printStackTrace();
		} 
	}
	
	public Grupo findByNombre(String nombre){
		Query q = session.createQuery("from Grupo grupo where grupo.nombre = :nombre");
		q.setParameter("nombre", nombre);
		return (Grupo) q.uniqueResult();
	}
}
